package com.cy.comstore.service;

import com.cy.comstore.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.Date;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xsn
 * @since 2023-03-03
 */
public interface IUserService {
    /**
     * 用户注册
     * @param user 用户数据
     */
    void reg(User user);

    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 登录成功的用户数据，没有则返回null值
     */
    /*当登录成功后需要获取该用户的id，
    以便于后续识别该用户的身份，并且还需要获取该用户的用户名、头像等数据，
    用于显示在软件的界面中，需使用可以封装用于id、
    用户名和头像的数据的类型来作为登录方法的返回值类型。
    故而返回用户类型*/
    User login(String username, String password);

    public void changepwd(Integer uid,
                          String newPwd,
                          String username,
                          String oldPwd);

    //其他用户依赖于用户ID的查询，故而声明该业务
     User getByUid(Integer uid);

     //由于页面只给了user对象的gender，phone，email，当调用mapper的对应方法时需要补充uid,修改时间与用户；页面显示也需要username，都可由session提供
    void changeInfo(Integer uid,String username,User user);

    /**
     * 修改用户头像
     * @param uid 当前登录的用户的id
     * @param username 当前登录的用户名
     * @param avatar 用户的新头像的路径
     */
    void updateAvatar(
            Integer uid,
            String avatar,
            String username);
}
